from flask import make_response, current_app
from flask_restful.utils import PY3
from json import dumps


def output_json(data, code, headers=None):
    """使用JSON编码的body生成一个Flask响应"""

    # 此处为自己添加***************
    if 'message' not in data:
        data = {
            # 'message': 'OK',
            'code': 200,  # 自动把状态200封装到json中
            'data': data
        }
    # **************************

    settings = current_app.config.get('RESTFUL_JSON', {})

    # 如果在调试模式下，缩进没有设置，则将其设置为
    # 合理的值。注意，这不会覆盖任何现有值
    # 这是集。我们还设置了“sort_keys”值.
    if current_app.debug:
        settings.setdefault('indent', 4)
        settings.setdefault('sort_keys', not PY3)

    # 总是以新行结束json转储
    # 看到 https://github.com/mitsuhiko/flask/pull/1262
    dumped = dumps(data, **settings) + "\n"

    resp = make_response(dumped, code)
    resp.headers.extend(headers or {})
    return resp
